package sv.com.bolsaTrabajo.view.bean.managedbeans;

import java.util.Date;
import sv.com.bolsaTrabajo.model.dao.CategoriaFacade;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import sv.com.bolsaTrabajo.model.entities.Categoria;
import org.primefaces.context.RequestContext;
import sv.com.bolsaTrabajo.model.dao.TipoContactoFacade;
import sv.com.bolsaTrabajo.model.entities.TipoContacto;
import sv.com.bolsaTrabajo.view.bean.ManejadorAccion;

/**
 *
 * @author Karina Palacios
 */
@ManagedBean
@SessionScoped
public final class TipoContactoMB extends ManejadorAccion {

    @EJB
    private TipoContactoFacade tipoContactoFacade;
    private TipoContacto tipoContacto;
    private List<TipoContacto> tipoContactos;

    /**
     * Constructor
     */
    public TipoContactoMB() {
        limpiarTipoContacto();
        tipoContacto = new TipoContacto();
    }

    public void limpiarTipoContacto() {
        setTipoContacto(new TipoContacto());
    }

    public List<TipoContacto> getTipoContactos() {
        tipoContactos = tipoContactoFacade.obtenerTodos();
        return tipoContactos;
    }

    public void guardarEntidad() {
        try {
            System.out.println("====> Ingresando a crear tipo contacto");
            getTipoContacto().setFechaMod(new Date());

            if (tipoContacto.getIdTipoContacto() == null) {

                tipoContactoFacade.crear(tipoContacto);
                lanzarMensajeInformacion("Exito", "Tipo Contacto guardada correctamente");

            } else {
                tipoContactoFacade.modificar(tipoContacto);
                lanzarMensajeInformacion("Exito", "Tipo Contacto modificada correctamente");

            }
            RequestContext.getCurrentInstance().update("IDFrmTipoContacto");
            RequestContext.getCurrentInstance().execute("WVDialogTipoContacto.hide();");

        } catch (Exception e) {
            lanzarMensajeError("", "Error al guardar Tipo Contacto ", e);
        }
    }

    public void modificarEntidad(TipoContacto modTipoContacto) {
        try {
            this.tipoContacto = modTipoContacto;
        } catch (Exception e) {
            lanzarMensajeError("Error al actualizar datos", "No se pueden asignar los valores para TipoContacto", e);

        }
        RequestContext.getCurrentInstance().update("");
    }

    /**
     * ****************** Getters and Setter ********************
     */
    public TipoContactoFacade getTipoContactoFacade() {
        return tipoContactoFacade;
    }

    public void setTipoContactoFacade(TipoContactoFacade tipoContactoFacade) {
        this.tipoContactoFacade = tipoContactoFacade;
    }

    public TipoContacto getTipoContacto() {
        return tipoContacto;
    }

    public void setTipoContacto(TipoContacto tipoContacto) {
        this.tipoContacto = tipoContacto;
    }
}
